package com.punch.system.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.punch.common.dto.system.ModuleDTO;
import com.punch.common.page.PageInfo;
import com.punch.common.query.syste.ModuleQueryInfo;
import com.punch.common.vo.common.OptionVO;
import com.punch.common.vo.system.ModuleVO;
import com.punch.system.model.SysModule;

import java.util.List;


/**
 * <p>
 * 功能模块表 服务类
 * </p>
 *
 * @author wjj
 * @since 2020-12-14
 */
public interface ModuleService extends IService<SysModule> {

    /**
     * 模块列表
     *
     * @param queryInfo 查询条件
     * @return PageInfo<BannerVO>
     */
    PageInfo<ModuleVO> listModule(ModuleQueryInfo queryInfo);

    /**
     * 保存功能模块
     *
     * @param moduleDTO 提交表单
     * @return id
     */
    Integer saveModule(ModuleDTO moduleDTO);

    /**
     * 修改功能模块
     *
     * @param moduleDTO 提交表单
     * @return id
     */
    Integer updateModule(ModuleDTO moduleDTO);

    /**
     * 功能模块详情
     *
     * @param moduleId 模块id
     * @return ModuleVO
     */
    ModuleVO getModule(Integer moduleId);

    /**
     * 删除功能模块
     *
     * @param moduleId 模块id
     * @return id
     */
    Integer deleteModule(Integer moduleId);

    /**
     * 修改模块状态
     *
     * @param moduleId 模块id
     * @param status   状态 0-不显示 1-显示
     * @return moduleId
     */
    Integer updateModuleStatus(Integer moduleId, Integer status);

    /**
     * 简单模块列表
     *
     * @return List<OptionVO>
     */
    List<OptionVO<Integer>> listSimpleModule(Integer type);
}
